From 6786d79b56824a86a3c59391fbf6a4bc4c094884 Mon Sep 17 00:00:00 2001 From: Marco Leogrande Date: Sat, 24 Jun 2017 14:51:47 -0700 Subject: [PATCH] garmin_fit: use constants instead of magic numbers This is for better code readability. --- garmin_fit.cc | 88 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 60 insertions(+), 28 deletions(-) diff --git a/garmin_fit.cc b/garmin_fit.cc index 3fb471295..61ee47d0f 100644 --- a/garmin_fit.cc +++ b/garmin_fit.cc @@ -26,6 +26,38 @@ #define MYNAME "fit" +// constants for global IDs +const int kIdDeviceSettings = 0; +const int kIdLap = 19; +const int kIdRecord = 20; + +// constants for message fields +// for all global IDs +const int kFieldTimestamp = 253; +// for global ID: device settings +const int kFieldGlobalUtcOffset = 4; +// for global ID: lap +const int kFieldStartTime = 2; +const int kFieldStartLatitude = 3; +const int kFieldStartLongitude = 4; +const int kFieldEndLatitude = 5; +const int kFieldEndLongitude = 6; +const int kFieldElapsedTime = 7; +const int kFieldTotalDistance = 9; +// for global ID: record +const int kFieldLatitude = 0; +const int kFieldLongitude = 1; +const int kFieldAltitude = 2; +const int kFieldHeartRate = 3; +const int kFieldCadence = 4; +const int kFieldDistance = 5; +const int kFieldSpeed = 6; +const int kFieldPower = 7; +const int kFieldTemperature = 13; +const int kFieldEnhancedSpeed = 73; +const int kFieldEnhancedAltitude = 78; + + static char* opt_allpoints = NULL; static int lap_ct = 0; @@ -351,7 +383,7 @@ fit_parse_data(fit_message_def* def, int time_offset) } f = &def->fields[i]; val = fit_read_field(f); - if (f->id == 253) { + if (f->id == kFieldTimestamp) { if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: timestamp=%d\n", MYNAME, val); } @@ -363,9 +395,9 @@ fit_parse_data(fit_message_def* def, int time_offset) fit_data.last_timestamp = timestamp; } else { switch (def->global_id) { - case 0: // device settings message + case kIdDeviceSettings: // device settings message switch (f->id) { - case 4: + case kFieldGlobalUtcOffset: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: global utc_offset=%d\n", MYNAME, val); } @@ -377,72 +409,72 @@ fit_parse_data(fit_message_def* def, int time_offset) } break; } // switch (f->id) - // end of case def->global_id = 0 + // end of case def->global_id = kIdDeviceSettings break; - case 20: // record message - trkType is a track + case kIdRecord: // record message - trkType is a track switch (f->id) { - case 0: + case kFieldLatitude: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: lat=%d\n", MYNAME, val); } lat = val; break; - case 1: + case kFieldLongitude: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: lon=%d\n", MYNAME, val); } lon = val; break; - case 2: + case kFieldAltitude: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: alt=%d\n", MYNAME, val); } alt = val; break; - case 3: + case kFieldHeartRate: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: heartrate=%d\n", MYNAME, val); } heartrate = val; break; - case 4: + case kFieldCadence: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: cadence=%d\n", MYNAME, val); } cadence = val; break; - case 5: + case kFieldDistance: // NOTE: 5 is DISTANCE in cm ... unused. if (global_opts.debug_level >= 7) { debug_print(7, "%s: unrecognized data type in GARMIN FIT record: f->id=%d\n", MYNAME, f->id); } break; - case 6: + case kFieldSpeed: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: speed=%d\n", MYNAME, val); } speed = val; break; - case 7: + case kFieldPower: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: power=%d\n", MYNAME, val); } power = val; break; - case 13: + case kFieldTemperature: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: temperature=%d\n", MYNAME, val); } temperature = val; break; - case 73: + case kFieldEnhancedSpeed: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: enhanced_speed=%d\n", MYNAME, val); } speed = val; break; - case 78: + case kFieldEnhancedAltitude: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: enhanced_altitude=%d\n", MYNAME, val); } @@ -454,48 +486,48 @@ fit_parse_data(fit_message_def* def, int time_offset) } break; } // switch (f->id) - // end of case def->global_id = 20 + // end of case def->global_id = kIdRecord break; - case 19: // lap wptType , endlat+lon is wpt + case kIdLap: // lap wptType , endlat+lon is wpt switch (f->id) { - case 2: + case kFieldStartTime: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: starttime=%d\n", MYNAME, val); } starttime = val; break; - case 3: + case kFieldStartLatitude: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: startlat=%d\n", MYNAME, val); } startlat = val; break; - case 4: + case kFieldStartLongitude: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: startlon=%d\n", MYNAME, val); } startlon = val; break; - case 5: + case kFieldEndLatitude: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: endlat=%d\n", MYNAME, val); } endlat = val; break; - case 6: + case kFieldEndLongitude: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: endlon=%d\n", MYNAME, val); } endlon = val; break; - case 7: + case kFieldElapsedTime: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: elapsedtime=%d\n", MYNAME, val); } //elapsedtime = val; break; - case 9: + case kFieldTotalDistance: if (global_opts.debug_level >= 7) { debug_print(7,"%s: parsing fit data: totaldistance=%d\n", MYNAME, val); } @@ -507,7 +539,7 @@ fit_parse_data(fit_message_def* def, int time_offset) } break; } // switch (f->id) - // end of case def->global_id = 19 + // end of case def->global_id = kIdLap break; default: @@ -523,7 +555,7 @@ fit_parse_data(fit_message_def* def, int time_offset) debug_print(7,"%s: storing fit data with num_fields=%d\n", MYNAME, def->num_fields); } switch (def->global_id) { - case 19: // lap message + case kIdLap: // lap message if (endlat == 0x7fffffff || endlon == 0x7fffffff) { break; } @@ -538,7 +570,7 @@ fit_parse_data(fit_message_def* def, int time_offset) lappt->shortname = cbuf; waypt_add(lappt); break; - case 20: // record message + case kIdRecord: // record message if ((lat == 0x7fffffff || lon == 0x7fffffff) && !opt_allpoints) { break; } -- 2.30.2